The present invention relates to the improvement of data consistency, and in particular, to enhancements of process server functionality and tools for manipulating process server functionality to improve data consistency in long-running processes.
Typically, a computer executed process may be considered “long running” if the time required to execute the process step(s) takes more than a few seconds. Data consistency can pose a potential problem for such long running computer processes, especially where a long running process must involve multiple systems and/or span multiple transactions. As an illustration, a communication failure might occur during a long running process such that a database update on a first system is successful, whereas a database update on a second system fails, thus resulting in an inconsistent state among databases in different systems. In another illustration, a database update on a first system may be successful, whereas a database update on a second system may fail because an infrastructure supporting the database on the second system is unavailable, which also results in an inconsistent state among databases in the different systems.
Software such as Business Process Management applications may attempt to address general data consistency issues. For example, in the event of a detected fault that is encountered during execution of a process, the Business Process Management application may attempt to implement a corrective action. Likewise, the Business Process Management application may execute compensation actions for all successfully completed activities. However, conventional Business Process Management applications have limited capability in responding to detected faults, especially faults that occur during the execution of long running processes. Moreover, the Business Process Management application may not be able to augment the necessary databases or otherwise remedy the failure, especially where the updated system has triggered another process such that the inconsistency has been propagated through additional systems and databases.
Even where it is possible to respond to a general data inconsistency issue by returning all participating systems to a consistent state, the compensation mechanisms take time to complete. Thus, such compensation mechanisms contribute negatively to the overall business process quality of service.